package com.gzhryc.net_marketing.cloud.micro.api.dto.v1;

import java.io.Serializable;
import java.util.List;

import com.gzhryc.common.api.SecurityResponse;

public class GetGoodsResponse extends SecurityResponse<GetGoodsResponse.Body> {

	private static final long serialVersionUID = 1L;

	public GetGoodsResponse() {
		this.body = new Body();
	}

	public GetGoodsResponse(Integer code) {
		this.body = new Body();
		this.code = code;
	}

	public GetGoodsResponse(Integer code, String msg) {
		this.body = new Body();
		this.code = code;
		this.msg = msg;
	}

	public static class Body implements Serializable {

		private static final long serialVersionUID = 1L;

		private Long goodsId;
		private String goodsName;
		private String goodsTypeNames;
		private List<String> goodsImgs;
		private String thumbnailImg;
		private Integer classify;
		private Integer state;
		private String payMoney;
		private String teamPayMoney;
		private Integer teamMemberTotal;
		private Integer gainCount;
		private Integer salesVolume;			//销售量
		private List<String> detailImgs;
		private List<Specification> specifications;
		
		private EvaluateInfo evaluateInfo;		//评价信息
		private Boolean canVirtualMoney = false;		//是否可以使用积分

		private Long supplierId;	//供应链应用ID，用于计算物流费用的妥协参数

		public Long getGoodsId() {
			return goodsId;
		}

		public void setGoodsId(Long goodsId) {
			this.goodsId = goodsId;
		}

		public String getGoodsName() {
			return goodsName;
		}

		public void setGoodsName(String goodsName) {
			this.goodsName = goodsName;
		}

		public String getGoodsTypeNames() {
			return goodsTypeNames;
		}

		public void setGoodsTypeNames(String goodsTypeNames) {
			this.goodsTypeNames = goodsTypeNames;
		}

		public List<String> getGoodsImgs() {
			return goodsImgs;
		}

		public void setGoodsImgs(List<String> goodsImgs) {
			this.goodsImgs = goodsImgs;
		}

		public String getThumbnailImg() {
			return thumbnailImg;
		}

		public void setThumbnailImg(String thumbnailImg) {
			this.thumbnailImg = thumbnailImg;
		}

		public Integer getClassify() {
			return classify;
		}

		public void setClassify(Integer classify) {
			this.classify = classify;
		}

		public Integer getState() {
			return state;
		}

		public void setState(Integer state) {
			this.state = state;
		}

		public String getPayMoney() {
			return payMoney;
		}

		public void setPayMoney(String payMoney) {
			this.payMoney = payMoney;
		}

		public String getTeamPayMoney() {
			return teamPayMoney;
		}

		public void setTeamPayMoney(String teamPayMoney) {
			this.teamPayMoney = teamPayMoney;
		}

		public Integer getTeamMemberTotal() {
			return teamMemberTotal;
		}

		public void setTeamMemberTotal(Integer teamMemberTotal) {
			this.teamMemberTotal = teamMemberTotal;
		}

		public Integer getGainCount() {
			return gainCount;
		}

		public void setGainCount(Integer gainCount) {
			this.gainCount = gainCount;
		}

		public Integer getSalesVolume() {
			return salesVolume;
		}

		public void setSalesVolume(Integer salesVolume) {
			this.salesVolume = salesVolume;
		}

		public List<String> getDetailImgs() {
			return detailImgs;
		}

		public void setDetailImgs(List<String> detailImgs) {
			this.detailImgs = detailImgs;
		}

		public EvaluateInfo getEvaluateInfo() {
			return evaluateInfo;
		}

		public void setEvaluateInfo(EvaluateInfo evaluateInfo) {
			this.evaluateInfo = evaluateInfo;
		}

		public Boolean getCanVirtualMoney() {
			return canVirtualMoney;
		}

		public void setCanVirtualMoney(Boolean canVirtualMoney) {
			this.canVirtualMoney = canVirtualMoney;
		}

		public List<Specification> getSpecifications() {
			return specifications;
		}

		public void setSpecifications(List<Specification> specifications) {
			this.specifications = specifications;
		}

		public Long getSupplierId() {
			return supplierId;
		}

		public void setSupplierId(Long supplierId) {
			this.supplierId = supplierId;
		}
	}

	public static class Specification {

		private Long id;			//规格ID
		private String name;		//名称
		private String thumbnailImg;
		private Integer stockNum;	//库存

		public Long getId() {
			return id;
		}

		public void setId(Long id) {
			this.id = id;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

		public String getThumbnailImg() {
			return thumbnailImg;
		}

		public void setThumbnailImg(String thumbnailImg) {
			this.thumbnailImg = thumbnailImg;
		}

		public Integer getStockNum() {
			return stockNum;
		}

		public void setStockNum(Integer stockNum) {
			this.stockNum = stockNum;
		}
	}

	public static class Label {

		private String name;
		private Integer count;

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

		public Integer getCount() {
			return count;
		}

		public void setCount(Integer count) {
			this.count = count;
		}

	}

	public static class EvaluateInfo {

		private Integer count;
		private Double favorableRate;
		private List<Label> labels;
		private List<EvaluateInfoItem> items;

		public Integer getCount() {
			return count;
		}

		public void setCount(Integer count) {
			this.count = count;
		}

		public Double getFavorableRate() {
			return favorableRate;
		}

		public void setFavorableRate(Double favorableRate) {
			this.favorableRate = favorableRate;
		}

		public List<Label> getLabels() {
			return labels;
		}

		public void setLabels(List<Label> labels) {
			this.labels = labels;
		}

		public List<EvaluateInfoItem> getItems() {
			return items;
		}

		public void setItems(List<EvaluateInfoItem> items) {
			this.items = items;
		}

	}

	public static class EvaluateInfoItem {

		private Long memberId;
		private String nickname;
		private String faceImg;
		private Integer evaluateNum;
		private String evaluateNote;

		public Long getMemberId() {
			return memberId;
		}

		public void setMemberId(Long memberId) {
			this.memberId = memberId;
		}

		public String getNickname() {
			return nickname;
		}

		public void setNickname(String nickname) {
			this.nickname = nickname;
		}

		public String getFaceImg() {
			return faceImg;
		}

		public void setFaceImg(String faceImg) {
			this.faceImg = faceImg;
		}

		public Integer getEvaluateNum() {
			return evaluateNum;
		}

		public void setEvaluateNum(Integer evaluateNum) {
			this.evaluateNum = evaluateNum;
		}

		public String getEvaluateNote() {
			return evaluateNote;
		}

		public void setEvaluateNote(String evaluateNote) {
			this.evaluateNote = evaluateNote;
		}

	}

}
